[アップデート] ALB にターゲットの障害検知からのトラフィック分割のアルゴリズムが使えるようになりました #AWSreInvent
はじめに
re:Invent 2023 現地参加の田中孝明です。
2023/11/26 のアップデート情報に Application Load Balancer (ALB) の自動ターゲット重み付け (Automatic Target Weights (ATW)) が対応されたとの情報があったのでブログにしました。
どんなことができるようになるのか
ALB の自動ターゲット重み付けは ALB の背後にあるターゲットの障害、パフォーマンスの低下を検出して別のターゲットへ自動でトラフィックを流す機能です。
ALB に異常検出と Weighted Random と呼ばれる負荷分散アルゴリズムが含まれるようになったことで、異常なターゲットを特定しトラフィックを削除し、エラーの発生していないターゲットへ自動でトラフィックを流すようにします。
やってみる
CLI やコンソールからオンにすることができます。
自動ターゲット重み付けはターゲットが 3 つ以上あるターゲットグループでのみ使用できるので、3 つのターゲットを持つ ALB を準備しました。
今回はコンソールからオンにしてみます。
Attributes タブに移動し Edit
を選択します。
Traffic configuration から Weighted random
を選択します。
Save changes
を押すと、自動ターゲット重み付けが有効になり、Targets タブのところに Mitigation in effect
の項目が追加されているのが確認できました。
どのターゲットも異常やパフォーマンスの低下が発生していないので、緩和が有効になっていない状態になっています。
考慮すべき項目は以下の項目です。
- 自動ターゲット重み付けは、ターゲットが 3 つ以上あるターゲットグループでのみ使用できる。
- クロスゾーンが有効になっている場合は、自動ターゲット重み付けはターゲットグループ内のすべてのターゲットの最大 50% で障害を検出し軽減する。
- クロスゾーンが無効になっている場合は、自動ターゲット重み付けはアベイラビリティゾーン (AZ)ごとに最大 50% のターゲットで障害を検出し、軽減します。
- リクエストレートがターゲットごとに 1 秒あたり 2 リクエストよりも低い場合、自動ターゲット重み付けは異常なターゲットを検出できない可能性があります。
- ほとんどのターゲットで障害が発生している場合、自動ターゲット重み付けは外れ値を検出したり軽減を実行したりできません。
- 自動ターゲット重み付けの検出および軽減機能を使用する場合、追加料金はかかりません。
まとめ
ラウンドロビン(デフォルト)や最小未処理リクエストアルゴリズムに加え、障害が発生しているターゲットへのトラフィックを自動で制限してくれるアルゴリズムが選べるようになったので異常発生時のオペレーションが改善されることでしょう。 そもそも各ターゲットで障害が発生しているか見れるようになったのも嬉しいアップデートですね。